package br.com.webfis.persistencia;

import br.com.webfis.modelos.Usuarios;
import java.util.List;
import javax.persistence.NoResultException;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author silvio
 */
public class UsuariosDAO {
    private final Session session;

    public UsuariosDAO(Session session) {
        this.session = session; 
    }

    public void salvar(Usuarios usuario) {
        
        try {
            session.save(usuario);
        } catch (HibernateException exp) {
            
        }
    }
    
    public void atualizar(Usuarios usuario) {
        try {
            session.update(usuario);
        } catch (HibernateException exp) {
            //
        }
    }
    
    public void deletar(Usuarios usuario) {
        try {
            session.delete(usuario);
        } catch (HibernateException exp) {
            //
        }
    }
    
    public List<Usuarios> listaTudo() {
            return this.session.createCriteria(Usuarios.class).list();           
        }

    public List<Usuarios> Pesquisar(Integer id, String texto) {
        List<Usuarios> resultado;
        try {
            Criteria criterio = this.session.createCriteria(Usuarios.class);
            if (id > 0)
                criterio.add( Restrictions.eq("id_usuario", id) ); 
            else
                criterio.add( Restrictions.ilike("descricao", texto, MatchMode.ANYWHERE) );             
            
            resultado= criterio.list();

            return resultado;
            
        } catch (NoResultException e) {
            return null;
        }
    }    
}
